System and method for triggering actions at a host computer by telephone

ABSTRACT

A system and method for remotely triggering a predetermined program at a host computer system using a telephone ring signal is disclosed. The host computer system includes a ring detection and triggering circuit, a control monitor program, and at least one activation script, wherein the activation script could be a series of commands which create a connection between the host system and the Internet. A ring signal on a phone line connected to the host system is detected by the ring detection circuitry, and subsequently a trigger signal is generated by a trigger circuit which is detected by the control monitor program running on the host system. The control monitor program responds to the trigger signal and executes the activation script, thereby causing a connection to be established between the host system and the Internet. Other features, such as multiple activation scripts, remote user authentication, and feedback validation tones are also disclosed. Further disclosed is a method of operating an ISP server computer for detecting whether a connection is being requested of a customer&#39;s host computer system, of determining whether the host computer system is presently connected to the Internet, and if the host system is not connected, of dialing a phone number which triggers an activation program stored at the host system, thereby causing the host system to connect to the Internet so that it can be accessed.

BACKGROUND OF THE INVENTION

[0001] The present invention is directed toward the field of remotely controlling the actions of a host computer system using a telephone connection, particularly in triggering a predetermined program, sequence of events, or series of actions at the host system. Such a sequence of events could be, for example, a script of commands which cause the host computer system to connect to the Internet for subsequent access by a remotely located user.

[0002] Recently, there has been a proliferation of computer systems that are connected to the Internet, the global information network. Most of the services available on the Internet are provided by large organizations, such as Government, University, and large corporations. These institutions have the capital and resources to spend on high-powered server computers with corresponding dedicated links to the Internet. These dedicated links range in bandwidth from 56 KB for an ISDN (Integrated Services Digital Network) line to 1.5 MB for a full T1 line. Such links are typically dedicated connections to an Internet Service Provider (“ISP”), where the ISP then provides a physical connection to the Internet. For small companies and individual users desirous of setting up a server to provide services, such as a World-Wide-Web (“Web”) server, or an FTP (File Transfer Protocol) server, the costs of leasing and maintaining a dedicated connection to an ISP is prohibitive. Without a dedicated connection to the Internet, there is no means of providing on-demand access to remote users who want to take advantage of the services provided by the server. The present invention overcomes this problem by providing a system and method for controlling the actions of a host computer system using a simple telephone call, and in particular, for triggering a host computer system to make a connection to a computer network, such as the Internet, whereupon a remote user, or multiple remote users, can then connect to the host system over the network, thereby circumventing the need for a costly dedicated connection to an ISP.

[0003] Previous systems for controlling a host computer system over a telephone connection are limited to two basic concepts: (1) remote power-up; and (2) remote access. The remote power-up systems include a circuit which detects a telephone call and applies power to the host computer. According to these prior art systems a telephone ring detector and power switch are interposed between the power outlet and the remote computer system to be activated. When a telephone call is detected on the phone line connected to the ring detector, the power switch is activated and the host computer's power supply is connected to the power outlet. One disadvantage of these prior art systems is that they are limited to simply powering up the computer. These systems do not provide any mechanism, signal, or intelligence which causes the host computer to perform a sequence of predetermined actions based on the detection of the phone call.

[0004] An additional disadvantage of these prior art systems is that there is no means to trigger a program, or programs, at the host computer system while the host system is activated, transparent to other users of the system. Furthermore, the remote power-up systems inherently disrupt any other users of the host system, and are therefore useful only for single-user computer systems, or Personal Computers (PC's).

[0005] Previous remote access systems permit a remotely located computer system to gain access to a host system through an authorization device, and thereafter to control the actions of the host system. According to these types of systems, a user at a remote location from the host computer system gains access over a telephone connection between the two computers. Each computer includes a modem for communication over the phone line. In order to selectively permit access to certain users, but deny access to others, these remote access systems require the use of special hardware on both ends of the telephone connection, wherein the special hardware is an access control device connected between the respective computer and modem on each end of the connection. The hardware devices perform authorization handshaking using special codes, and if the codes match, the hardware devices permit access to the modem resources connected to the two computers. After the hardware devices have performed the authorization handshaking, the user of the local system then accesses the host system and controls its operations directly, as though he were located at the host system.

[0006] These prior art remote access systems assume that the control of the host system is to be carried out by a local computer after access is authorized. One disadvantage of these systems is that they do not teach that a remote user can trigger a predetermined sequence of events at a host system using a ring signal on a phone line. For any control to occur in these systems, the host computer must actually answer the phone call and create a logical connection between the host and local systems.

[0007] An additional disadvantage of these systems is that they are limited to access by one remote user at a time per modem, since each remote user creates a dedicated phone line connection to the modem resource of the host system. The only way to circumvent this shortcoming is for the host system to provide a modem-pool of resources. Such a modem-pool can support multiple remote users, but increases the expense and complexity of the host system. These systems do not teach that multiple remote users can access the services of the host system simultaneously through a single communications link.

[0008] Another disadvantage of the previous remote access systems is their inherent bandwidth limitation. Because the remote access systems are limited to communication using modems on either end of the connection, the speed of communication will be limited to the speed of state of the art analog modems, which is currently 28.8 Kbps. These systems do not teach the ability to create an Internet connection using TCP/IP (Transfer Control Protocol/Internet Protocol), such that the remote user could connect at a much higher bandwidth using, for example, a 56 KB or 128 KB ISDN connection, or even a full T1 1.5 MB connection. The previous remote access systems are limited to analog modem communication.

[0009] Another prior art system combines the teachings of the remote access systems and the remote power-up systems by providing a remote power-up device that is triggered by a phone call, and which “boots” a computer system and causes an access control program stored in the “boot drive” to be activated. Like the other remote access systems, this system assumes that the control of the host system is to be carried out by a local computer. The host system is controlled only after the access software permits access to the local user by first answering the telephone call and then establishing a logical connection between the modem of the host system and that of the local computer. This system does not teach the triggering of a predetermined sequence of events at a host system using a telephone ring signal. In addition, this system requires two computer systems, one at either end of the connection, and also requires that the host computer system be powered down before any type of control or communication can take place. This system does not teach multiple-user remote access through a single communications device. Furthermore, this system is limited to analog modem communication, as above, and therefore cannot support high bandwidth communications.

[0010] Therefore, there remains a need for a system and method wherein a predetermined program, or sequence of events, can be triggered for execution at a host computer system using a telephone ring signal.

[0011] There remains a further need for such a system and method wherein the predetermined program is a script of commands which cause the host computer system to connect to the Internet.

[0012] There remains a further need for such a system and method wherein after the host computer system has made a connection to the Internet, a user at a remote location, or multiple users at multiple remote locations, can use local computer systems to connect to the host system and thereby gain access to the services of the host system.

[0013] There remains a further need for such a system and method wherein the host computer system can be triggered by a ring signal without effecting the other operations of the host computer.

[0014] There remains a further need for such a system and method wherein a plurality of predetermined programs are stored at the host system, and, following the ring signal, a trigger identification code is transmitted over the phone line by the remote user indicating which of the plurality of predetermined programs is to be executed.

[0015] There remains a further need for such a system and method wherein a user validation code is transmitted on the phone line after the ring signal by the remote user, and the host system authenticates the user validation code prior to executing the predetermined program.

[0016] There remains a further need for such a system and method which enables higher bandwidth connections to be created between remote users and host systems via the Internet, independent of analog modem technology.

[0017] In addition, there remains a need for a method of connecting a host computer system to the Internet based on a request for services by a remote user, such that the remote user can connect to the host system using a local computer, where the connection is caused by a third computer system that receives the request for services from the remote user, and which dials the phone number of a phone line connected to the host system.

[0018] There remains a further need for such a method where the third computer system is a server computer at an ISP site that services the host system, wherein the ISP server computer includes software modules that automatically detect requests for services by remote users, and which determine whether the host system is already connected to the network, and if not, which then generate a ring signal on a telephone line connected to the host system, thereby triggering the host system to connect to the Internet for access by the remote user.

[0019] There remains a further need for such a method where the third computer system is a network server that the remote user connects to, where the network server contains a list of host systems that can be connected to the Internet by the server, and where the remote user requests the services of a specific host system, wherein the network server then generates a ring signal on a telephone line connected to the specified host system and verifies that the host system has connected to the network.

SUMMARY OF THE INVENTION

[0020] The present invention overcomes the problem of having to lease and support a dedicated connection to the Internet, and meets the needs noted above by providing a system and method for controlling a host computer system using a telephone ring signal. In particular, the present invention provides a system and method for remotely triggering a predetermined program, or sequence of events, at a host computer system using a ring signal, wherein the sequence of events is, for example, a stored script of commands that cause the host system to connect to a computer network, such as the Internet. Using the present invention, a small company or individual can achieve the benefits of having their own Internet server computer without having to shoulder the expense and complexity of a dedicated link to an Internet Service Provider.

[0021] According to the present invention, a system and method is provided for triggering a predetermined program stored at a host computer system using a telephone ring signal, wherein the host system includes a ring detection and triggering circuit connected to a phone line for detecting a ring signal on the line, and for generating a trigger signal to the host system indicating that a ring signal has been detected. The host system receives the trigger signal and executes a predetermined program stored at the host system. The predetermined program could be, for example, an activation script of commands that create a connection between the host system and the Internet.

[0022] According to another aspect of the present invention, the host system includes a background executing control signal monitoring process that monitors an interface port of the host computer system, such as a serial port, waiting for a trigger signal indicating that a ring signal has been detected on the phone line, and subsequently causes the execution of at least one predetermined program stored at the host system.

[0023] According to another aspect of the present invention, multiple predetermined programs are stored at the host system, and in order to select which program is to be executed, a trigger identification code is transmitted after the ring signal by the remote user, the code indicating which of the multiple programs is to be executed.

[0024] According to another aspect of the present invention, a user validation code is transmitted after the ring signal by the remote user, and the host system then validates the user code and if the code is valid, the host system permits triggering of the predetermined program.

[0025] According to another aspect of the present invention, a method is disclosed for detecting the network address of a host computer system at an Internet Service Provider (ISP) site, for determining whether the host computer system is currently connected to the Internet, and if not so connected, for dialing a phone number associated with a phone line connected to the host system, thereby triggering the host computer system to execute a predetermined program which causes the host computer system to connect to the Internet.

[0026] According to another aspect of the present invention, a method is disclosed for a remote user to select and trigger a host system to connect to the Internet by connecting to a network server, such as a Web Server, wherein the Web Server includes a list of host computer systems that can be triggered for connection to the Internet by the network server, and wherein the remote user selects the host system to be triggered and the network server dials a phone number associated with a phone line connected to the host system, thereby triggering the host computer system to execute a predetermined program which causes the host system to connect to the Internet.

[0027] An advantage of the present invention over the prior art systems and methods is that it permits various remote users to gain access to the services of host computer systems without requiring that the host computer system be connected to a computer network, such as the Internet, using a costly dedicated communication link.

[0028] Another advantage of the present invention is that it enables a remote user to gain access to a host computer system without having to pay for long distance telephone charges associated with a direct connection, since the remote user can trigger the host system to connect to the Internet, and the remote user can then use a local computer to access the services of the host system. No long distance telephone link is required, and since the Internet is a global network, a remote user could be anywhere in the world, and could gain access to the host system without having to pay for a very expensive long distance telephone call.

[0029] Another advantage of the present invention is that it provides a method whereby Internet Service Providers (ISPs) can activate a host computer system automatically upon detection of a data packet which is intended for the host computer. Using this method, a remote user does not have to make a telephone call to trigger the host system to connect to the Internet, but instead sends data packets over the network as if communicating to a host system that has a dedicated link. These data packets are then detected by the ISP server computer at which the host computer has an account set up, and the server computer determines whether the host system is connected to the Internet. If the host system is not connected, the ISP rings a phone line connected to the host system, thereby triggering a connection to the Internet. To the remote user it therefore appears as though the host computer system has a dedicated link.

[0030] Alternatively, the present invention provides a method whereby a network server includes a list of host systems that can be triggered for connection to the Internet and a remote user connects to the network server and selects the host to be connected, whereupon the network server triggers the host to connect to the Internet. As in the previous method, this alternative method does not require the remote user to make a telephone call, i.e. in both methods it is unnecessary for the remote user to know the phone number of the host system.

[0031] As will be appreciated, the invention is capable of other and different embodiments, and its several details are capable of modifications in various respect, all without departing from the invention. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

[0032] The above advantages will become apparent from the following description when read in conjunction with the accompanying drawings wherein:

[0033]FIG. 1A is a block diagram of a system according to the present invention;

[0034]FIG. 1B is a circuit diagram of a ring detection and triggering circuit according to the present invention;

[0035]FIG. 2 is a data flow diagram of the control signal monitor program;

[0036]FIG. 3A is a block diagram of an advanced system according to the present invention;

[0037]FIG. 3B is a circuit diagram of an advanced ring detection and triggering circuit according to the present invention;

[0038]FIG. 4 is a block diagram of a system located at an Internet Service Provider (ISP) site that is used to detect and determine whether a host system is connected to the Internet, and if not connected, to dial the phone number associated with the host system.

[0039]FIG. 4A is a flow chart of the steps carried out by the system located at the ISP of FIG. 4 which is used to detect and determine whether a host system is connected to the Internet, and if not connected, which dials the phone number associated with the host system.

[0040]FIG. 5 is a flow chart of an alternative method showing the selection, connection and verification steps of a remote user contacting a network server to trigger a specified host system to connect to the Internet.

DETAILED DESCRIPTION OF THE DRAWINGS

[0041] Referring now to the drawings, FIG. 1A shows a block diagram of a system according to the present invention. Block 10 is a host computer system, such as a personal computer, workstation, or mainframe computer system, and which preferably is operating a multi-tasking operating system, such as Unix, Microsoft Windows 95, or Microsoft Windows NT. The host computer system includes memory for storing a variety of applications, including a control signal monitor program 12, and at least one activation script 14. The control signal monitor program 12 is a background executing application that monitors a serial port, or other interface port, of the host system 36 for the presence of a trigger signal, and in response to the trigger signal causes the activation script 14 to be executed. The control signal monitor program is discussed more fully below in connection with FIG. 2.

[0042] Connected to one serial port 36 of the host computer 10 is a trigger circuit 16, discussed more fully below in connection with FIG. 1B. The trigger circuit has two ports, one port 38 connected to the serial port 36 of the host computer, and a second port 40 connected to a serial port 42 of the modem 22, also using a serial connection. The serial connections in FIG. 1A are preferably RS-232 connections, but could be any type of serial or other interface connection. Trigger circuit 16 is connected to the host computer system and the modem using respective wiring harnesses 18 and 20, which are preferably 25-wire connections, per the RS-232 standard. The modem 22 includes ring detector 34, and is connected to an external phone line 24 via a standard RJ11 phone jack.

[0043] In this embodiment of the present invention the ring detection function 34 is carried out internally within the modem 22. All standard modems have the ability to detect a ring signal on a telephone line, and generate a standard Ring Indicator (RI) signal on pin 22 of the 25-pin modem interface, which is preferably a standard RS-232 interface. The trigger circuit 16, discussed in more detail below, passes the majority of the modem signals on wiring harness 20 through to the serial port 36 of the host system directly, so that the host system can communicate over the phone line using the modem 22. The trigger circuit 16 responds to the Ring Indicator (RI) signal on pin 22 of the modem interface, and generates a trigger signal to the host system 10 using one of the pins of the standard RS-232 interface, preferably pin 8.

[0044] External to the host system is an Internet Service Provider (ISP) 26, which is preferably a server computer with a modem pool, and which provides dial-in and dedicated access to its customers in order to make a connection to the Internet 28. Also external to the host system is at least one remote user, where the remote user has access to a phone 30, and a local computer system 32.

[0045] The system according to FIG. 1A operates as follows. The remote user dials the phone number of the phone line 24 associated with the host computer system 10, causing a ring signal on the phone line 24. The ring detection circuit 34 of modem 22 detects the ring signal and passes this signal on to the trigger circuit 16. The trigger circuit 16 detects the ring signal from the ring detector 34 and generates the trigger signal to the host computer system 10 via the host computer system's serial port 36. The control monitor program 12 then detects the trigger signal on serial port 36 and causes the activation program 14 to be executed. The activation program 14 creates a connection through the modem 22 and ISP 26 to the Internet 28. The remote user can then make a connection to the host system 10 over the Internet 28 using local computer 32.

[0046] In this manner, a remote user can trigger a host computer system to connect to the Internet using a simple telephone ring signal, and thereafter, the remote user can connect to the host system over the Internet using a local computer, thereby dispensing with the need to have a dedicated link associated with the host system, and also dispensing with the need to pay for a long distance phone call. In addition, since the control monitor program is a background executing application, the actions of triggering the host system to make a connection to the Internet can occur without disrupting other users of the host system.

[0047] Referring now to FIG. 1B, a circuit diagram of the trigger circuit 16 is set forth. As discussed previously, the trigger circuit 16 has two ports, one port 38 connected to the host computer's serial port 36, and the second port 40 connected to the modem serial port 42. As set forth in FIG. 1B, the majority of the signals associated with the serial communications connection are simply passed through the trigger circuit 16, from the modem port 42 to the host computer port 36.

[0048] According to the RS-232 serial communications standard, pin 22 of the serial interface is the Ring Indicator (RI) signal. The RI signal is an active-high signal which is asserted when the ring detection circuitry 34 of the modem 22 detects a ring signal on the phone line 24.

[0049] Trigger circuit 16 monitors the RI signal 54 on pin 22, and feeds the signal into a one-shot timer 58, which is preferably a type 555 timer. When the RI signal 54 transitions from low to high on pin 22, the one-shot timer 58 generates a pulse on its OUT pin, wherein the duration of the pulse is determined by the external RC-network 60, and the resistor-switch network 52.

[0050] The resistor-switch network 52 is used to create pulses of varying duration, depending on the particular requirements of the host system. Certain host systems may require a longer trigger signal, and therefore in order to avoid having a custom trigger circuit for each type of host system, the resistor-switch network 52 is provided in order to accommodate various host computers. Using the resistor-switch network 52, the trigger pulse width can be preferably varied between 10 and 70 seconds.

[0051] The pulse from the one-shot timer 58 is fed into an optical relay 50, which is a normally closed, single-throw double-pole device. The output of the optical relay 50 is connected through jumper J5 to pin 8 on the host computer port 36, which is the trigger signal 56 to the host system. Using jumpers J1-J6, an alternative connection using pin 5 as the trigger signal 56 can be made. When the one-shot timer 58 is triggered by the transition on pin 22, the relay 50 is driven active, thereby opening the relay and connecting the relay output to a high voltage level. This level is maintained on the output of the relay until the one-shot timer 58 OUT signal returns to its inactive state. When this occurs, the relay 50 returns to its normally closed state, which then reconnects the trigger signal line on pin 8 straight through from the modem port 42 to the host computer port 36.

[0052] Referring now to FIG. 2, a data flow diagram of the control signal monitor program 12 is provided. Exemplary source code for the control signal monitor program 12 is set forth in this application as Appendix A. The control monitor program 12 begins in a non-running state 70. When the monitor program 12 is executed it enters a state 74 where it is constantly monitoring one of the serial ports 36 of the host computer system 10, waiting for the trigger signal 56, which in the present embodiment is pin 8 of the serial port 36. In the case of a system where there is only a single activation script 14, the control monitor detects the trigger signal 56 on the serial port 36 and causes the activation script 14 to be executed 76. When the sequence of commands that comprise the activation script 14 has been executed, the control monitor 12 returns to state 74 where it is waiting for another trigger signal.

[0053] In the case of a system where multiple activation scripts 14 can be triggered for execution (as set forth in FIG. 3A), the control monitor detects a trigger signal 56 at state 74, and then checks for a trigger identification value on the serial port 36 data lines. The trigger identification value indicates which script is to be executed, and is transmitted by the remote user when making the phone call to trigger the host system. The control monitor program 12 performs a “lookup” into store 72 which indexes the activation scripts 14 by trigger identification value in order to determine which script to execute.

[0054] The activation script 14 can be any sequence of commands which cause the host system 10 to perform some specified series of actions, but in the preferred embodiment is a sequence of commands which cause the host system 10 to make a connection through a communications device 22 to the Internet 28. Such command sequences are well known in the art of data communications, in particular in causing a host system to connect to a specific network, such as the Internet.

[0055] Referring now to FIG. 3A, an advanced system according to the present invention is described. The system of FIG. 3A includes the same elements as that in FIG. 1, except that the ring detection function is carried out by the advanced trigger circuit 16A (discussed more fully below in connection with FIG. 3B), and a phone line splitter 80 is added which connects the phone line 24 to both the modem 22 and the advanced trigger circuit 16A using standard RJ11 phone jacks.

[0056] One advantage of this embodiment is that the communication device 22 does not have to be external to the host computer system 10, as shown, and the advanced ring detection and triggering circuit 16A can answer the phone call in order to process additional information transmitted by the remote user, such as a user validation code, or the trigger identification values discussed above. The preferred embodiment set forth in FIG. 3A shows the advanced triggering circuit 16A and an external modem 22. An alternative embodiment (not shown) would use an Internal modem within the host system 10, and there would therefore be no connection between the trigger circuit 16A and the external modem 22.

[0057] The operation of the advanced system in FIG. 3A is identical to that of the system in FIG. 1A, except that in the advanced system the ring detection and triggering circuit 16A performs internal ring detection 34, and includes circuitry that enables the circuit 16A to answer the phone line 24 and process additional information transmitted by the remote user, such as the user validation signals or the trigger identification value. In addition, the advanced ring detection and triggering circuit 16A has the ability to transmit DTMF (Dual Tone Multi-Frequency) tones back onto the phone line 24 in order to signal the remote user that the triggering operation has been carried out by the host system 10.

[0058] Referring now to FIG. 3B, the advanced ring detection and triggering circuit 16A is described. In the preferred embodiment this circuit is a three-port device, two ports 38, 40 for establishing the 25-pin RS232 serial connection between the host system port 36 and the external modem port 42, and a third port for connecting to the phone line 24 using a standard RJ11 phone jack. This three-port device has two modes of operation, standard and advanced.

[0059] The mode in which the advanced ring detection and triggering circuit 16A operates is selected using the RJ11/RS232 Selector Switch 98, which is a standard DIP switch. The signal from the RJ11/RS232 selector switch 98 is input to the model selector circuit 104, which routes the signal lines from either the modem input port 40 or from the internal microcontroller 100 onto the output port 38 which connects to the serial port of the host computer 36. In the standard mode of operation the circuit operates in the same fashion as the circuit of FIG. 1B. The serial lines from the modem port 42 are routed through selector circuit 104 onto the lines connected to host serial port 36. The difference between the operation in the standard mode and the operation of the circuit in FIG. 1A is that the ring detection is done in the advanced ring detection and triggering circuit 16A by ring detector 34 which generates an External Ring Indicator signal 54 to microcontroller 100. The microcontroller 100 senses this signal 54 and generates a trigger signal that is routed through selector circuit 104 onto pin 8 of the output port 38.

[0060] In the advanced mode of operation the signals from the internal microcontroller 100 are routed through the selector circuit 104 onto the output port 38 for connection with the host system serial port 36. This connection enables serial communication between the host system 10 and the microcontroller 100 of the advanced circuit 16A. In this mode of operation the external modem 22 is not used for making a connection to the Internet, but rather an internal communication device within the host system 10 is used to make the connection. This internal communication device (not shown) could be an analog modem, ISDN modem, or any other type of communication device. In the advanced mode of operation the advanced ring detection and triggering circuit 16A is capable of answering the phone line 24 and of processing additional signals transmitted by the remote user. In addition, the circuit 16A can transmit DTMF signals back to the remote user over the phone line 24.

[0061] These advanced features are carried out using the following circuit components: (1) solid state data access arrangement (DAA) 90; (2) signal conditioning circuits 92; DTMF transmitter and receiver 94; microcontroller 100; and TTL/RS232 level converter 102. The solid state DAA 90 includes ring detector 34, which detects a ring signal on the phone line 24 and asserts the External Ring Indicator signal 54 to the microcontroller 100. The solid state DAA 90 also provides standard interface and isolation circuitry required by the FCC for communication over a telephone line.

[0062] Signal conditioning circuits 92 convert the differential signals required for use by the DAA 90 into single ended signal levels compatible with the dual tone multi-frequency (DTMF) transmitter and receiver 94. The DTMF transceiver 94 receives signals from the DAA 90 in DTMF format and converts the signals into a digital format for transmission to the microcontroller 100 over databus 96. Likewise, the DTMF transceiver 94 receives a digital signal from the microcontroller 100 over databus 96 and converts the digital signal into a DTMF signal for transmission to the DAA circuit 90 which then asserts the DTMF tones onto the phone line 24. In this manner the microcontroller 100 can both send and receive standard DTMF signals on the external phone line 24.

[0063] Microcontroller 100 preferably includes a central processing unit (CPU) core, temporary storage, such as a random access memory (RAM), and permanent storage, such as an Erasable Programmable Read Only Memory (EPROM). The software that enables the microcontroller to: (1) handle the signal on the External Ring Indicator 54 line; (2) process the incoming DTMF signals transmitted by the remote user; and (3) determine what signals to transmit back to the remote user; is either permanently stored in the EPROM of the microcontroller, or is downloaded from the host system 10. In the later case, the EPROM only contains a small software kernel which, on power up, instructs the microcontroller 100 to download the software to control the advanced operations discussed above from the host system 10, via the serial connection 18.

[0064] The final circuit component depicted in FIG. 3B is the TTL/RS232 converter 102. The TTL/RS232 level converter 102 takes the 0-5V TTL signals from the microcontroller and converts them into the RS232 voltage levels that are part of the RS232 standard. This circuit simply boosts the TTL serial port voltage levels on the microcontroller to levels which are compatible with the RS232 standard. Alternatively, the serial connection could be an RS422 or RS485 connection, in which case a TTL/RS422 or TTL/RS485 level converter would be required.

[0065] The advanced ring detection and triggering circuit 16A operates as follows. When a phone call is detected by ring detector 34 an active signal level is asserted on the External Ring Indicator line 54 to the microcontroller 100. The software controlling the microcontroller causes the microcontroller to wait for this signal 54 to become active, and when detected the microcontroller 100 asserts an active level on the DCD (Data Carrier Detect) line which is routed through the TTL/RS232 level converter 102 and the router 104 onto pin 8 of the output port 38 to become the trigger signal 56. The trigger signal 56 is detected by the control monitor program 12 running on the host system 10, and the control monitor then waits for additional information to be transmitted over the serial port 36 from the advanced unit 16A.

[0066] After detection of the ring signal, the advanced ring detection and triggering circuit 16A then answers the phone line and looks for additional DTMF tones being transmitted from the remote user. These tones could represent either a user validation sequence, or a trigger identification value. The user validation signals are preferably a standard Unix-type “login/password” sequence, where, for example, the remote user transmits a multi-digit login number and a corresponding multi-digit password in the form of a series of DTMF tones.

[0067] These tones are received by the DAA 90, passed onto the DTMF transceiver 96 where they are converted from DTMF format to a digital word and transmitted to the microcontroller 100 over databus 96. The microcontroller 100 then preferably transmits the login/password sequence to the control monitor program via the serial communication port 38-36 for authorization. Host system 10 further includes a datafile of valid login/password sequences that is accessed by the control monitor program 12 in order to determine whether the transmitted sequence is valid. Alternatively, the login/password sequence could be authorized by the software stored in the advanced ring detection circuit 16A directly. In this alternative case the valid login/password sequences could be either stored permanently in the EPROM of the advanced circuit, or the microcontroller 100 could be programmed to access the datafile of valid login/passwords stored on the host system 10, using the serial communications port 38.

[0068] Assuming that the user validation signals are received, processed and then transmitted to the host system for verification, the host system then transmits a signal back to the advanced control unit 16A indicating that the remote user has been verified. The microcontroller 100 then examines the databus 96 to determine whether additional tones have been transmitted that represent the trigger identification value. As discussed above, the trigger identification value permits the selection of one of many scripts for execution by the host system 10. This trigger identification value is received by the microcontroller 100 and transmitted onto the host system 10 where the control monitor program reads the value from the serial port 36 and uses it as the index into store 72 to determine which activation script 14 to execute.

[0069] After the control monitor program 12 has executed the selected script 14, a signal is sent to the advanced control unit 16A indicating that a script has been triggered. The microcontroller 100 receives this signal and then transmits a specific tone or sequence of tones using the DTMF transceiver 96 and DAA circuit 90 back onto the phone line 24, indicating to the remote user that the selected script has been executed. In the preferred embodiment, the script 14 creates a connection between the host system 10 and the Internet 28, using an internal communications device (not shown) connected to the host system 10. The internal communications device could be another analog modem, or could be an ISDN digital communications device, and is connected over a phone line to an ISP, so as to create a connection to the Internet.

[0070] Using the advanced mode of operation, a remote user can trigger one or more of a plurality of scripts 14 stored at a host computer system 10, and can receive audible feedback from the system that the command has been executed. In addition, the advanced mode provides for security and user authentication through the verification of the user login/password validation signals optionally transmitted by the remote user.

[0071] Referring now to FIG. 4, a system for connecting a host computer system to a network based on a determination that the host computer is not presently connected to the network is set forth. The system of FIG. 4 includes a network connection, or pipe 44, to the Internet over which a multitude of data packets are being transmitted. Each data packet contains routing information, such as an IP address of a host system, or an EMAIL address of a particular user, or some other unique destination information that server computers connected across the network use to direct and route the packet to its destination.

[0072] The present invention uses this routing information in order to determine whether the destination computer, i.e. the host computer system, is connected to the network, and if a determination is made that the destination computer is not currently connected, a phone call is made to the host computer in order to trigger a connection to the network for subsequent delivery of the data packet. This triggering step assumes that the host system 10 has a triggering circuit according to FIG. 1A or 3A, discussed above, that detects a signal on the corresponding phone line 24 and triggers a script of commands which cause the host system to connect to the Internet.

[0073] The ISP host server system includes a number of software and database components, a server computer, and a pool of modems. The ISP server computer is connected to the Internet via the network pipe 44, which could be a dedicated connection, such as a T1 or T3 high bandwidth telephone connection.

[0074] The ISP server includes an Access Detector Program 110, which is a software module that constantly monitors the destination information of data packets transmitted over the network pipe 44, and extracts the destination address information which corresponds to customers of the ISP. The information extracted by the Access Detector Program 110 is routed to a Host Collection Module 112 which is a software module that collects and stores the destination information of detected packets that correspond to customers of the ISP. This information is then routed to a Raw Access Log 114 where it is stored and time stamped so that the ISP server system knows when access to a customer's host computer system 10 has been requested.

[0075] In addition to the Raw Access Log 114, the ISP Host Server System includes an Organized Database 122, which stores a variety of information such as which ISP customers have paid for the remote triggering service, how many access requests for a particular host have been logged into the Raw Access Log, how many trigger signals have been generated, the phone numbers of customer host systems 10, billing information, etc.

[0076] The information stored in the Raw Access Log 114 and the Organized Database 122 is used by the Database Decision Module 116 to determine whether to trigger a specific host system 10 to connect to the Internet by dialing a phone number associated with the system. The Database Decision Module 116 examines the destination information stored in the Raw Access Log 114 and compares it with the information stored in the Organized Database 122. If destination information is detected which corresponds to a customer of the ISP referenced in the Organized Database 122, the Database Decision Module extracts the phone number of the host system 10 to be triggered from the Organized Database 122. The ISP server computer then dials the phone number associated with the customer's host computer system 10, using one of the modem's in the server modem pool 120, thus creating a ring signal on the phone line 24 connected to the host computer system 10. As depicted in FIGS. 1A, and 3A, this ring signal is detected by the host computer system 10, and causes an activation script 14 stored at the host computer system to be executed, wherein the activation script 14 creates a connection between the host computer system 10 and the Internet 28. Following the establishment of this connection, data packets designated for the customer's host computer system 10, can thereafter be routed to the host system.

[0077] Using the system described above, a customer of an ISP can maintain a host computer system that appears to have a dedicated link to the Internet even though in reality it does not, thus saving the customer the cost and complexity of maintaining a dedicated link. Using this system and method, the remote user, or users, do not need to know the phone number of the host system, as this information is retained at the ISP server.

[0078] Referring now to FIG. 4A, a flow chart of the steps carried out at the ISP Host Server System is set forth. In step 132, a remote user 132 transmits data packets with specific system destination information embedded in the packets over the Internet. These packets are routed by various other computer systems (not shown) and ultimately are directed to the ISP Host Server. If the destination host computer system is presently connected to the Internet, the user is simply connected to the host system in step 148 (i.e. the packets are directly routed to the host system).

[0079] However, if the host computer system is not presently connected to the Internet, then at step 136, the ISP Host Server detects the destination information corresponding to a request to access a specific host system. Following the detection of the destination information, the ISP Host Server collects this information and routes it to the Raw Access Log in step 140. Following the update to the Raw Access Log, the Database Decision Module 116 then determines, in step 138, whether the destination information corresponds to a host system that is supported by the remote triggering service of the ISP. If the requested host system is not supported, then in step 134 the ISP Host Server takes no additional action. To the remote user, this will appear as though the host system is simply not connected to the network. However, if the requested host system is supported by the ISP, then in step 142 a “ping” function is executed. The “ping” function is used to determine whether a particular system is presently connected to the Internet. This function is well known in the art of digital communications, particularly communications between computers via a network such as the Internet. If the “ping” command yields a positive result, then the requested host system is presently connected to the Internet, and the ISP Host Server merely updates the Organized Database to reflect the request for services 144 and the remote user is connected to the host system 148. If the “ping” command indicates that the requested host system is not presently connected to the Internet, then the ISP Host Server makes a telephone call 146 to the requested host system using a modem 150.

[0080] If the requested host system includes a ring detection and triggering circuit (as discussed above in FIGS. 1A and 3A), the ring signal will be detected and the host system will be triggered to make a connection to the Internet. After the ISP Host Server dials the phone number of the requested host system, the “ping” function is executed again to verify that the host system has properly been triggered to connect to the network. If the “ping” indicates that the host system has connected, the organized Database 122 is updated, and the remote user data packets are then routed to the host system 148. If the “ping” indicates that the host did not connect, then the ISP Host Server will repeat steps 142-146 until the host system makes a connection, or until some maximum number of redials is attempted.

[0081] Referring now to FIG. 5, an alternative method of connecting a host computer system to the Internet is disclosed where the remote user triggers the host system to connect to the Internet by first connecting to a third party intermediary server. According to this method, if the remote user cannot directly make a connection to the desired host system 172, because the host system is not presently connected to the Internet, the remote user can connect to a third party server 162, which could be, for example, a Web-server.

[0082] The third party server is configured to present the remote user with a list of host computer systems that may be remotely triggered to connect to the Internet. The remote user connects to the third party server at step 162, and selects the system he desires to communicate with at step 164. Stored at the third party server are the corresponding phone numbers and network addresses of the host systems that can be remotely triggered.

[0083] After the remote user selects a host system 164, the third party server executes a “ping” command to determine whether the selected host system is presently connected to the network. If the system is connected, the third party system immediately reports to the remote user at step 170 that the selected system is available. The remote user can then communicate directly with the host system. If the “ping” command indicates that the selected host system is not presently connected to the Internet, then at step 168 the third party server then calls the phone number associated with the selected host system. Assuming that the host system is equipped with the ring detection and triggering circuitry and software of the present invention, the phone call will cause the host system to execute a script that will create a connection to the Internet. If the host system is using the advanced ring detection circuit of the present invention (FIG. 3A), the third party system could also be supplied with the user validation signals and the trigger identification value to transmit in order to cause the proper connection to be established.

[0084] After the third party server dials the phone number of the selected host system it loops back to step 166 and executes the “ping” command in order to verify that the proper connection has been made. If the “ping” command is negative, the host system is dialed again. The looping between dialing and “ping”-ing continues until the host system makes a connection, or until some maximum number of redials is exceeded. After the “ping” command yields a positive result, the third party system reports to the remote user at step 170 that the selected host system is now connected to the Internet. The remote user can then directly communicate with the host system 172.

[0085] The invention has been described with reference to the preferred embodiments. Obviously, modifications and alterations will occur to others upon a reading and understanding of this specification. It is intended to include all such modifications and alterations insofar as they come within the scope of the appended claims or the equivalents thereof. 

What is claimed:
 1. A method of triggering a program stored at a host computer system using a telephone ring signal, wherein the host system includes a ring detection circuit connected to a phone line, the method comprising the steps of: (a) dialing the telephone number of the phone line connected to the host system, thereby generating a ring signal on the phone line; (b) detecting the ring signal on the phone line using the ring detection circuit, and then generating a trigger signal to the host system indicating a phone call has been detected; (c) the host system receiving the trigger signal and executing a predetermined program stored at the host system.
 2. The method according to claim 1, wherein the predetermined program executed by the host system is a script of commands which creates a connection between the host system and the Internet using a communication device connected to the host system.
 3. The method according to claim 2, further including the step of (d) a remote user then utilizing a local computer system to create a connection to the host computer via the Internet.
 4. A system for triggering predetermined actions at a host computer system using a telephone, the system comprising: (a) a host computer system, including at least one activation program stored at the host system, and further including a control signal monitor program which waits for a trigger signal and upon receiving the trigger signal causes the activation program to be executed by the host computer system; and (b) a ring detection and triggering circuit connected to a phone line, wherein said circuit includes a ring detector which detects a ring signal on the phone line, and upon detection of the ring signal said circuit generates the trigger signal to the host system, thereby triggering execution of the activation program stored at the host computer system by dialing the phone number of the phone line connected to the host computer system.
 5. The system according to claim 4, further including: (c) a communications device connected to the host system, said communications device is further connected to a communications network.
 6. The system according to claim 5, wherein the activation program is a script of commands which causes the host computer system to connect to the Internet using the communications device.
 7. The system according to claim 4, wherein multiple activation programs are stored at the host system, and wherein a numeric value transmitted on the phone line indicates which activation program is to be executed, said value being transmitted to the host system along with the trigger signal in order to enable execution of the indicated program.
 8. The system according to claim 4, further including means for authenticating a user validation sequence transmitted on the phone line and for only triggering execution of the activation program upon authentication of the transmitted sequence.
 9. The system according to claim 8, wherein the ring detection and triggering circuit further includes tone generating circuitry activated upon receipt of an authenticated user validation sequence, said tone generating circuitry generating a sequence of tones onto the external phone line to indicate successful triggering of the system.
 10. A method of connecting a host computer system to a network based on a determination that the host computer is not presently connected to the network, the host computer system including an activation program which when executed causes the host computer system to connect to the network, the method comprising the steps of: (a) detecting destination information contained in data packets being transmitted over the network, wherein the destination information corresponds to the host computer system, the detection of said host computer system's destination information indicating that access to the host computer system is being requested by another computer system; (b) determining whether the host system is currently connected to the network; and (c) if it is determined that the host system is not connected to the network, dialing a telephone number associated with the host system, said dialing step causing a ring signal on the phone line associated with the host system, wherein the ring signal is detected by the host computer system and triggers the activation program stored at the host system, thereby causing the host system to connect to the network for access by the other computer system.
 11. A method of a remote user selecting and connecting a host computer system to a network using an intermediate network server, wherein the host computer system includes an activation program which when executed causes the host computer system to connect to the network, the method comprising the steps of: (a) the remote user connecting to the intermediate network server, wherein the network server includes a list of at least one host computer system that can be selected for triggering to connect to the network; (b) the remote user then selecting from the list the host computer system to be triggered for connection to the network; (c) the intermediate network server then dialing a telephone number associated with the host system, said dialing step causing a ring signal on the phone line associated with the host system, wherein the ring signal is detected by the host computer system and triggers the activation program stored at the host system, thereby causing the host system to connect to the network for access by the remote user.
 12. The method of claim 11, further including the step of: (d) the network server then determining whether the host system has successfully connected to the network and notifying the remote user of said connection.
 13. A ring detection and triggering circuit for detecting a ring signal on a phone line and for generating a trigger signal to a host computer system which causes the host computer system to execute a predetermined program, the circuit comprising: a solid state data access arrangement including optical isolation circuits connected to the phone line, and further including a ring detector circuit that generates a signal on a ring indicator signal line when the phone line is ringing; a DTMF transceiver, including a digital databus and an analog input/output port, wherein the analog input/output port is connected to the solid state data access arrangement in order to receive and transmit DTMF tones over the phone line; and a microcontroller connected to the digital databus and further connected to the ring indicator signal line, wherein the microcontroller includes a serial port connection to the host system and wherein the microcontroller is programmed to monitor the ring indicator signal line for a phone call and generates a trigger signal to the host computer system over the serial port, thereby triggering the execution of the predetermined program.
 14. A system for triggering a program stored at a host computer system using a telephone ring signal, comprising: means for detecting the telephone ring signal on a connected phone line and for generating a trigger signal to the host computer system indicating that a phone call has been detected; said host system including means for receiving the trigger signal and for executing the program stored at the host system.
 15. The system according to claim 14, wherein the program stored at the host system is a series of commands which cause the host system to connect to the Internet using a communication device connected to the host system.
 16. A system for connecting a host computer system to a network based on a determination that the host computer is not presently connected to the network, the host computer system including an activation program which when executed causes the host computer system to connect to the network, the system comprising: means for detecting destination information contained in data packets being transmitted over the network, wherein the destination information corresponds to the host computer system; means for determining whether the host computer system is presently connected to the network; means for dialing a telephone line associated with the host system when it is determined that the host computer system is not presently connected to the network; and said host computer system including means for detecting a ring signal on the telephone line associated with the host computer system and for triggering the activation program stored at the host system, thereby causing the host system to connect to the network. 